json - 将字符串数组序列化为json
全部标签 我想用逗号分割一个字符串:"a,s".split','#=>['a','s']如果子字符串被括号包裹,我不想拆分它:"a,s(d,f),g,h"应该产生:['a','s(d,f)','g','h']有什么建议吗? 最佳答案 要处理嵌套括号,可以使用:txt="a,s(d,f(4,5)),g,h"pattern=Regexp.new('((?:[^,(]+|(\((?>[^()]+|\g)*\)))+)')putstxt.scan(pattern).map&:first图案细节:(#firstcapturinggroup(?:#ope
我在这里找了一段时间,但没有找到我需要的东西。我正在学习Ruby(1.9)并尝试使用文本文件做一些基本的事情。我正在尝试使用RegEx删除非字母和仅在行首的空格,忽略标记之间的空格(我正在尝试计算文件中的单词数,因此当我希望单词之间的空格保留时).例如:555r6ub6yi7se7a0sy...w1o2w4.更改为:rubyiseasy...wow.我到目前为止使用命令行测试的内容rubyrubyfile.rb:$stdin.eachdo|line|line.chomp!.downcase!line.gsub!(/[^a-zA-Z]/,"")#thistakesawaymyspaces
我有两个数组,一个包含数据,一个包含索引。我想知道是否有一些好的方法可以删除indexes中给定位置的data中的元素。我可以做简单的迭代,但我想知道最短的方法是什么:data=['a','b','c','a','b','c','a','b','c']indexes=[2,5,8]//somecodeheredata中的元素在索引恰好与数组索引中的数字重合时消失。它应该看起来像这样:['a','b','a','b','a','b'] 最佳答案 data.values_at(*data.each_index.to_a-indexes)
根据ruby-doc和apidock,您可以使用to_json和json_create序列化和反序列化异常。但是在浪费了一些时间尝试使用它们之后,我仍然没有找到办法。调用exc.to_json给我一个空哈希,Exception.json_create(hash)给我这个错误:undefinedmethod'json_create'forException:类我想我可以很容易地重新创建这些函数,因为源代码可用,但我更愿意了解我做错了什么……有什么想法吗? 最佳答案 默认情况下,JSON模块不会扩展Exception。您必须要求“jso
我需要转换CSV文件中的哈希数组。我发现的各种方法涉及在数组中插入哈希值:classArraydefto_csv(csv_filename="hash.csv")require'csv'CSV.open(csv_filename,"wb")do|csv|csv不幸的是,这个方法要求数组中的每个元素都是完整的,例如,当我有这个数组时,它甚至不会返回有效的csv:myarray=[{foo:1,bar:2,baz:3},{bar:2,baz:3},{foo:2,bar:4,baz:9,zab:44}]我正在寻找一种创建csv的方法,它可以找到所有可能的header,并以正确的顺序分配值,并
忙于学习Ruby...文档有一个例子:"helloworld".count("lo","o")返回2那如何返回2?在我的示例中,我已经:puts"Lennie".count("Le","ie")返回2。计数在这方面是如何工作的? 最佳答案 "helloworld".count("lo")返回5。它匹配了第三个、第四个、第五个、第八个和第十个字符。让我们称之为第一组。"helloworld".count("o")返回二。它匹配了第五个和第八个字符。让我们将此称为第二组。"helloworld".count("lo","o")计算集合一
我想弄清楚是否有一种简单的方法来执行以下操作,而不是将to_i方法添加到TrueClass/FalseClass。这是一个难题:我的Rails应用程序中有一个bool字段-显然在mysql中存储为Tinyint。但是-我需要根据mysql中的数据生成xml并将其发送给客户-那里的SOAP服务要求相关字段具有0或1作为该字段的值。因此,在生成xml时,我需要将False转换为0,将True转换为1(这就是它们在数据库中的存储方式)。由于True&False缺少to_i方法,我可以编写一些if语句,根据真/假状态生成1或0。然而,我有大约10个这样的指标,并且为每个指标创建和if/else
我正在从我无法控制的提要中提取数据,我需要验证我提供的字符串是否是有效时间。大多数时候我会正确地发送“2:35”或“15:41”之类的内容,但其他时候是“AM”或“PM”之类的内容(没有数字)......所以我最终只是需要忽略那些。那么,如何验证数据是否为有效时间? 最佳答案 您还没有明确指定您认为什么是有效时间(例如,您是否应该接受可选的秒数),所以这是一个猜测:data=~/^([01]?[0-9]|2[0-3])\:[0-5][0-9]$/ 关于ruby-on-rails-Ruby
我正在尝试将sinatra应用程序迁移到ruby1.9我正在使用sinatra1.0、rack1.2.0和erb模板当我启动sinatra时它可以工作,但是当我从浏览器请求网页时出现此错误:Encoding::CompatibilityErrorat/incompatiblecharacterencodings:ASCII-8BITandUTF-8所有.rb文件都有这个标题:#!/usr/bin/envruby#encoding:utf-8我认为问题出在erb文件中,即使它显示它是UTF-8编码[user@localhostviews]$filehome.erbhome.erb:U
假设我有一个大小5的数组。我想将一个索引(从0-4)作为输入,并从提供的索引开始遍历该数组。例如,如果给定的索引是3,我想像这样迭代:arr[3]arr[4]arr[0]arr[1]arr[2]我可以想出很多方法来做到这一点-但Ruby的方式是什么? 最佳答案 您可以使用1.9.2版本的Array#rotate[4,3,6,7,8].rotate(2).each{|i|printi}67843 关于ruby-迭代数组的'Rubyway'是什么——从数组[n]到数组[n-1]?,我们在St